package hotel.base.oversea.constant;

/**
 * 系统通用  常量值
 *
 * @author zhangjinzheng
 * @date 2019-11-22
 */
public interface CommonConstants {

    /**
     * 成功标记
     */
    Integer SUCCESS = 200;

    /**
     * 错误标记
     */
    Integer ERROR = 500;

    /**
     * 参数错误
     */
    Integer PARAMETER_ERROR=1000;

    /**
     * 解析错误
     */
    Integer PARSE_ERROR=1001;

    /**
     * 请求错误 （第三方返回错误码为错误码）
     */
    Integer REQUEST_ERROR=1002;

    /**
     * 该错误 要求订单改为延时单
     */
    Integer DELAY_ERROR=1090;

    /**
     * 该错误 推送给下游分销商 订单不接收，利润空间不足
     */
    Integer HHB_PROFIT_ERROR=801;

    /**
     * 携程下单前暂停时间 分钟--- 美团无库存，接口异常
     * 原10分钟修改120分钟 20200903 修改
     * version 40min  qyy
     */
    Integer SWITCH_ORDER_WAIT_TIME = 40;


    /**
     * 携程下单前暂停时间 分钟 -- 美团酒店取消规则为：不可取消 等待时常
     */
    Integer SWITCH_ORDER_MT_NOCENCAL_WAIT_TIME = 5;


    /**
     * redis 相关字段属性值
     */
    //美团酒店key
    String MEITUAN_HOTEL="meituan_hotel";
    //美团保存酒店详情缓存到redis
    String MEITUAN_HOTEL_INFO=CommonConstants.MEITUAN_HOTEL+"_info";
    //Map<产品id,产品早餐规则集合>  key=产品id，value=list<MtHotelGoodsBreakfastVo>   产品接口缓存早餐信息
    String MEITUAN_HOTEL_GOODS_BREAKFAST_LIST=CommonConstants.MEITUAN_HOTEL+"_goods_breakfast_list";
    /**
     * 保存美团床型信息 key:房型id value 床型列表数据
     */
    String MEITUAN_HOTEL_ROOM_BED=CommonConstants.MEITUAN_HOTEL+"_room_bed";
    //携程酒店key
    String SWITCH_HOTEL="switch_hotel";
    //携程保存母酒店数据缓存到redis，Map<母酒店id,母酒店dto>-->Map<String,SwitchMasterHotelInfoDto>
    String SWITCH_HOTEL_INFO=CommonConstants.SWITCH_HOTEL+"_info";
    //携程保存母酒店id缓存到redis，Map<母酒店id,母酒店id>-->Map<String,String>
    //String SWITCH_MASTER_HOTEL_IDS_INFO=CommonConstants.SWITCH_HOTEL+"_master_ids_info";
    //获取保存母物理房型接口时，缓存到redis：保存母物理房型id数据和母酒店id数据    map<String,SwitchMasterRoomTemplateDto> key = 母物理房型id     value = SwitchMasterRoomTemplateDto
    String SWITCH_MASTER_ROOM_HOTEL_AND_MASTER_INFO=CommonConstants.SWITCH_HOTEL+"_master_room_hotel_and_master_info";

    String SWITCH_MEITUAN_ID = "switch_meituan_id";

    //匹配成功的酒店id
    String COMPARE_HOTEL_ID = "compare_hotel_id";


    //匹配成功的酒店id - 数字递增 0 开始
    //key:从0开始, value:(效验通过的酒店id)
    String COMPARE_HOTEL_ID_NUM = "compare_hotel_id_num";

    /**
     * 酒店相關名詞
     */
    String[] HOTEL_NAME = new String[]{"酒店","宾馆","客栈","旅馆","宾馆","公寓","渔家","住宿","招待所","农庄","农家乐","农家院","民宿","旅店"};

    /**
     * 携程美团批量执行数据库新增，删除数量
     */
    Integer COMPARE_NUM = 100;
    /**
     * 两平台间酒店坐标定位可接受范围差
     * 单位 米
     * 20（2020-07-21 16：39 之前数据）
     */
    Integer DISTANCE_MAX = 50;

    Float COMPARE_PER = 50.0f;

    /**
     * 房型相关名词
     */
    String[] HOTEL_ROOM_NAME=new String[]{"床","房","人"};

    /**
     * 房型关键字
     */
    String[] HOTEL_KEYWORD_ROOM_NAME=new String[]{"双","标准","大床","单","圆","套房","特大","三人","客房","家庭"};

    /**
     * 房型名称相似度
     */
    Float COMPARE_ROOM_NAMR_PRE=100.0f;

    /**
     * 匹配成功后的房型标识
     */
    String COMPARE_ROOM_ID = "compare_room_id";

    /**
     * 房型效验的房型标识 房型与房型之间是否效验
     */
    String SWITCH_MEITUAN_ROOM_ID = "switch_meituan_room_id";

    /**
     * 床型效验的标识 床型与房型之间是否效验
     */
    String SWITCH_MEITUAN_BED_ID="switch_meituan_bed_id";

    /**
     * 床型过滤关键字
     */
    String[] BED_NAME=new String[]{"人","床"};

    /**
     * 床型相识度
     */
    Float COMPARE_ROOM_BED_NAMR_PRE=90.0f;

    /**
     * 记住效验房型的次数
     *  value 第几次,完成执行成功次数才会加1,否则还是当前次数
     */
    String COMPARE_HOTEL_ID_NUMS ="compare_hotel_id_nums" ;
    /**
     * 记住效验房型数据，每页执行的位置
     * key:page(第几页) value:index(执行的位置)
     */
    String COMPARE_HOTEL_ID_PAGE_MAP = "compare_hptel_id_page_map";
    /**
     * 酒店之间对应关系
     *key 携程酒店id value 美团的酒店id
     */
    String SW_HOTEL_AND_MT_HOTEL ="sw_hotel_and_mt_hotel" ;

    /**
     * 携程配置表信息
     */
    String SWITCH_BASE_SET = "switch_base_set";

    /**
     * @author: lmf
     * @date: 2020/8/12 17:53
     * key 子酒店id value 推送数据json字符串
     */
    String PUSH_FORM_LIST = "switch_push_room_data_list";
    //缓存数据前缀
    String SWITCH_KEY_AUTO ="switch_key_auto";
    String SWITCH_HOTEL_ACTIVE_TAG ="switch_hotel_active_tag" ;

    //线程推送推送价格房态 库存
    String SWITCH_PUSH_ROOM_THREAD_NUM ="switch_push_room_thread_num" ;
    String SWITCH_PUSH_ROOM_THREAD_NUM_BY_SPLIDER ="switch_push_room_thread_num_by_splier" ;
    String SWITCH_AUTO_KEY = "switch_auto_key";
    String SWITCH_AUTO_KEY_LOG ="switch_auto_key_log" ;
    String SWITCH_BASE_SET_KEY = "switch_base_set_key";
    String SWITCH_ROOM_PRICE_SET = "switch_room_price_set";

    //人工后台对该携程售卖产品设置了标准价，缓存产品人工标准价标识：set(CommonConstants.RG_SET_LIBRARY_SELLING+美团酒店id+"_"+美团产品id,"1");
    String RG_SET_LIBRARY_SELLING = "swmt_rg_set_library_selling";

    String PRICE_CHECK_CHANGE_MIN_PRO = "sw_price_check_change_min_pro";

    String PRICE_LIBRARY_MIN_COMPARE_PRO = "swmt_min_library_compare_pro";

    //上架酒店售卖房型redis 缓存 2020-09-24
    String SWITCH_SELLING_THE_HOUSE_TYPE = "selling_the_house_type_";
    //上架酒店房型redis 缓存 供美团检验房型是否过期
    String SWITCH_SELLING_THE_HOUSE_ROOM_TYPE = "selling_the_house_room_type_";

    //2小时查询静态信息缓存酒店的物理房型信息
    String SWITCH_MT_ONE_HOTEL_ROOMS_REDIS = "sw_mt_hotel_rooms_data_job_push";

    //2小时查询静态信息缓存酒店的详情信息
    String SWITCH_MT_HOTEL_DETAIL_INFO_DATA_JOB_PUSH = "sw_mt_hotel_detail_info_data_job_push";

    //2小时查询静态信息缓存酒店的Rp信息
    String SWITCH_MT_HOTEL_RP_GOODS_INFO_DATA_JOB_PUSH = "sw_mt_hotel_detail_rp_goods_info_data_job_push";

    //2小时查询静态信息中-成功请求物理房型信息的酒店集合-后续job会对该集合进行最新房型信息校验-有请求成功房型信息的酒店才需要定时器校验房型信息
    String SWITCH_MT_HOTELS_LAST_REQ_ROOMS = "sw_mt_hotels_last_req_rooms";

    //通过美团酒店id+ 产品id 获取对应，携程相关酒店房型等信息
    String SWITCH_SELLING_REDIS_BY_MT = "switch_selling_redis_by_mt_";
    //推送多少天的房態價格数据
    String SWITCH_PUSH_DATA_DAY = "switch_push_data_day";
    //缓存美团酒店+美团产品id+餐食,value 早餐数量
    String SWITCH_CREATE_ROOM_BREAKFAST="switch_create_room_breakfast";
    //缓存售卖酒店，供美团rp接口调用比例 value:Integer  默认是7
    String SYSTEM_BASE_SET_TO_MEITUAN_RP_RATE="system_base_set_to_meituan_rp_rate";
    //缓存售卖酒店,供美团房态接口调通比例 value:Integer 默认是3
    String SYSTEM_BASE_SET_TO_MEITUAN_FT_RATE="system_base_set_to_meituan_ft_rate";
    //缓存产品取消规则，供美团产品效验是否需要更新取消规则
    String SWITCH_CREATE_ROOM_CANCEL_RULE="switch_create_room_cancel_rule";

    String SW_CHANGE_HOST_GATEWAY="common_change_host_gateway";
    //缓存携程推送数据消费数据
    String SWITCH_CALLBACK_PUSH_DATA_QUEUE="switch_callback_push_data_queue";
    //缓存在售酒店数据,进行房型数据更新
    String SWITCH_SALE_HOTEL_DATA_LIST = "switch_sale_hotel_data_list";
    //缓存在售酒店数据,进行价格+房态效验，如果携程没有更新就进行更新
    String SWITCH_SALE_HOTEL_CHECK_PRICE_AND_STATUS_IS_CHANGE ="switch_sale_hotel_check_price_and_status_is_check" ;
    //缓存携程与价格公式的缓存
    String SWITCH_HOTEL_PRICE_SET_RELATION = "switch_hotel_price_set_relation";
    //缓存时间点，比如18 代表0-18点使用白天公式 18点-23使用晚上公式
    String SWITCH_PRICE_SET_PRICE_TIME = "switch_price_set_price_time";
    //控制酒店是否使用自已的价格公式
    String SWITCH_IS_OPEN_HOTEL_OWNER_PRICE_FORMULA = "switch_is_open_hotel_owner_price_formula";
    //每次效验酒店价格和房态的酒店数量
    String SWITCH_CHECK_HOTEL_PRICE_AND_STATUS_NUM = "switch_check_hotel_price_and_status_num";
    //产品的窗户类型，用来效验窗户是否变更依据
    String SWITCH_CREATE_ROOM_WINDOW_TYPE = "switch_create_room_window_type";
    //参与活动酒店的酒店数量
    String SWITCH_JOIN_ACTIVE_HOTEL_NUM = "switch_join_active_hotel_num";
    //参与活动酒店的酒店数据
    String SWITCH_JOIN_ACTIVE_HOTEL_LIST = "switch_join_active_hotel_list";
    //参与活动酒店的酒店数据-新订单调用
    String SWITCH_JOIN_ACTIVE_HOTEL_LIST_FOR_ORDER = "switch_join_active_hotel_list_for_order";
    //参与活动酒店的价格优化价格 单位为分
    String SWITCH_JOIN_ACTIVE_HOTEL_PRICE="switch_join_active_hotel_price";
    //在售酒店的数据
    String SWITCH_SALE_HOTEL_TO_PRICE_LIST = "switch_sale_hotel_to_price_list";
    //携程上架优势酒店 Set集合
    String SWITCH_SALE_HOTEL_VIP = "switch_sale_hotel_vip";
    //携程上架普通酒店 Set集合
    String SWITCH_SALE_HOTEL_NORMAL = "switch_sale_hotel_normal";
    //在售酒店的房型id
    String SWITCH_SALE_HOTEL_ROOM_LIST = "switch_sale_hotel_room_list";
    //针对价格房态更新未成功的房态重新推送
    String SWITCH_CHECK_HOTEL_PRICE_AND_STATUS_REFRESH_PUSH = "switch_check_hotel_price_and_status_refresh_push";
    String SWITCH_ADJUST_HOTEL_RATE_BY_OUT_PUT_IS_ZERO = "switch_adjust_hotel_rate_by_out_put_is_zero";
    //控制是否开启月初佣金酒店公式价格缓存
    String SWITCH_CONTROL_IS_OPEN_ADJUST_HOTEL_PRICE_FORMULA ="switch_control_is_open_adjust_hotel_price_formula" ;
    String SWITCH_HOTEL_ACTIVE_LIST_BY_OPEN_ACTIVE = "switch_hotel_active_list_by_open_active";
}
